The term “latch” conventionally is used to refer to or to describe an electronic circuit that has two stable states and may be used to store a value, e.g., a single bit of information. Latches may be used for a wide variety of circuit applications, including, for example, in finite state machines, as counters and for synchronizing signals. If more than two states, e.g., more than one bit of information, are required, it is common to combine two or more latches to represent the desired number of states.
Unfortunately, such multiple-latch circuits suffer from several deleterious drawbacks. For example, a multiple-latch circuit generally requires additional circuitry surrounding the latches to “interpret” the combined state of the latches, and to control the state changes of the multiple latches. Such additional circuitry may slow down the operation of the multiple-latch circuit. In addition, a multiple-latch circuit is less deterministic than a single latch. For example, while any single latch may be in a known state, a multiple-latch circuit may be in a variety of transitory states. For example, one latch of a multiple-latch circuit may operate faster than another, completing a state transition prior to another latch changing state. Additionally, the state of one latch may depend on the state of another latch, and thus cannot change until the other latch has completed its transition. Further, the state-control logic surrounding the multiple latches requires a finite time to command, control and/or report a combined state of the multiple latches, further introducing times at which a state of a multiple-latch circuit is indeterminate.